import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        //数组的创建和初始化
        int[] array={1,2,3,4,5,6};
        int[]array2=new int[]{1,2,3,4,5,6};
    }
    public static int fib(int n){
        if(n==1||n==2){
            return 1;
        }
        return fib(n-1)+fib(n-2);
    }
    public static int fib2(int n){
        int f1=1;
        int f2=1;
        int f3=0;
        for(int i=3;i<=n;i++){
            f3=f1+f2;
            f1=f2;
            f2=f3;
        }
        return f3;
    }

    public static void main11(String[] args) {
        //求斐波那契数列的和
        System.out.println(fib(1));
        System.out.println(fib(2));
        System.out.println(fib(3));
        System.out.println(fib(6));
        System.out.println(fib(10));

        //斐波那契求和循环写法
        System.out.println(fib2(1));
        System.out.println(fib2(2));
        System.out.println(fib2(3));
        System.out.println(fib2(6));
        System.out.println(fib2(10));
    }

    public static void print(int n) {

        if(n<10){
            System.out.println(n);
            return;
        }
        print(n/10);
        System.out.println(n%10);

    }
    public static int sum(int n){
        if(n==0){
            return 0;
        }
        return n+sum(n-1);

    }
    public static int sums(int n){
        if(n<10){
            return n;
        }
        return n%10+sums(n/10);

    }

    public static void main10(String[] args) {
        //递归的练习
        // 打印一个数字的每位
        Scanner scan=new Scanner(System.in);
        int num=scan.nextInt();
        print(num);
        //用递归去求1+2+3+4+5+....+10
        int ret=sum(num);
        System.out.println(ret);
        //写一个递归方法，输入一个非负整数，返回组成它的数字之和，例如1729，则返回1+7+2+9它的和是19
        int nums=sums(num);
        System.out.println(nums);







    }





public static boolean isLeapYear(int year) {
    System.out.println("方法被调用：");
    if((0==year%4&&0!=year%100)||0==year%400){
        return true;
    }
    else{
        return false;
    }
}

    public static void main9(String[] args) {
        //判断这个年份是平年还是闰年调用一个函数
        Scanner scan=new Scanner(System.in);
        int year=scan.nextInt();
        boolean ret=isLeapYear(year);
        if(ret==true){
            System.out.println("是闰年");
        }
        else{
            System.out.println("不是闰年");
        }
    }



    public static void main8(String[] args) {
        //输入一个字符串
          Scanner scan=new Scanner(System.in);
//        System.out.println("读入一个字符串：");
//        String str=scan.next();
//        System.out.println(str);
//        String str2=scan.nextLine();//遇到空格不会结束
//        System.out.println(str2);
        System.out.println("读入一个整形：");
        int age=scan.nextInt();
        System.out.println(age);



    }
    public static void main7(String[] args) {
        //求一个整数，在内存当中存储时，二进制1的个数。
        int n=7;
        int count=0;
        while(n!=0){
            n=n&(n-1);
            count++;
        }
        System.out.println(count);
    }
    public static void main6(String[] args) {
        //求2个整数的最大公约数
        int a=24;
        int b=18;
        int c=a%b;
        while(c!=0){
            a=b;
            b=c;
            c=a%b;
        }
        System.out.println(b);

    }
    public static void main5(String[] args) {
       // 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    。
        double sum=0;
        int flag=1;
        for(int i=1;i<=100;i++){
            sum=sum+1.0/i*flag;
            flag=-flag;
        }
        System.out.println(sum);

    }
    public static void main4(String[] args) {
       //求出0～n之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本 身，如；153＝1^3＋5^3＋3^3，则153是一个“水仙花数“。）
      for(int i=0;i<99999;i++){
          //计算它的位数
          int count=0;
          int tmp=i;
          while(tmp!=0)
          {
              count++;
              tmp/=10;
          }
          tmp=i;
          int sum=0;
          while(tmp!=0){
            sum+=Math.pow(tmp%10,count);
            tmp/=10;
          }
          if(sum==i){
              System.out.println(i);
          }


      }




    }
    public static void main3(String[] args) {
        //打印 X 图形
        //首先要了解java中的多组输入
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextInt()) {  //如果你要多组输入一个整数。结束条件是看他是否有下一个整数
            int a = scanner.nextInt();//如果有就读进来
            for(int i=0;i<a;i++){
                for(int j=0;j<a;j++){
                    if(i==j||i+j==(a-1)){
                        System.out.print("*");
                    }
                    else{
                        System.out.print(" ");
                    }

                }
                System.out.println();
            }
        }
    }

    public static void main2(String[] args) {
       // 给定一个数字，判定一个数字是否是素数
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int i=2;
        for(i=2;i<=Math.sqrt(n);i++){
            if(n%i==0){
                break;
            }
        }
        if(i>Math.sqrt(n)){
            System.out.println(n+"是素数");
        }
        else {
            System.out.println(n+"不是素数");
        }
    }
    public static void main1(String[] args) {
        //编写程序数一下 1到 100 的所有整数中出现多少个数字9
        int i=1;
        int count=0;
        for(i=1;i<100;i++) {
            if(i%10==9){
                count++;
            }
            if(i/10==9) {
                count++;
            }
        }
        System.out.println(count);
    }
}

